import { createRouter, createWebHashHistory } from "vue-router";
// 前端遵循约定大于规定
// 根据目录文件直接获取路由,约定规则非常重要

// 寻找views文件夹中所有的页面配置文件page.js
const pages=import.meta.glob('../views/**/page.js',{
    // 获取的不在是函数,而是一个模块对象,对象内容为数组内容
    eager:true,
    // 只筛选取出默认default中的对象
    import :'default',
});

// 加载所有的页面模块
const pageComps=import.meta.glob('../views/**/index.vue'
    /*    ,{
        eager:true,
        import:'default',
    }*/
);

// 获取路由对象的键值对
const routes=Object.entries(pages).map(([path,meta])=>{
    const pageJSPath=path;
    // 去除路径path上的赘余,保留文件夹名称
    path=path.replace('../views','').replace('/page.js','');
    //利用三目运算单独处理首页路径
    path='/home'?'/':path;
    // 名字处理
    const name =path.split('/').filter(Boolean).join('-')||'index';
    const compPath=pageJSPath.replace('page.js','index.vue')
    return {
        path,
        name,
        component:pageComps[com.pPath],
        meta,
    };
});
console.log(routes);
//定义变量
/*const routes = [
    {
         path: '/',
        //注:vite打包工具强制要求补全路径文件名称，不能省略后缀名
        //component:按需加载
        //component:()=>import箭头函数格式
        //import引自于路径地址
        component: () => import( '../views/Main.vue' ),
        //children对象
        children: [ {
            path: '/',
            name: 'home',
            label:'首页',
            component: () => import( '../views/home/index.vue' )
        },{
            path:'/settings',
            name:'settings',

        } ]
    }
]*/
//createRouter是一个方法，{内容}此内容为对象 ，creat是方法就必须要调用，不然声明会报错
const router = createRouter( {
    history: createWebHashHistory(),//对象
    routes,
} )


//路由导出暴露，导出
export default router